注意:所有文章除特别说明外,转载请注明出处.
计算机网络 - HTTP协议
HTTP协议是属于应用层的协议,是超文本传输协议。
特点:1.支持客户端与服务器模式。2.简单快速。3.无连接。4.无状态。
问题:在浏览器地址栏输入URL之后,按下回车之后经历的流程:1.DNS解析(DNS缓存,浏览器缓存…)。2.在DNS找到ip地址之后会根据ip地址进行TCP连接。3.之后浏览器会发送HTTP请求。4.紧接着服务器请求并返回HTTP报文。5.浏览器解析渲染页面。6.浏览器释放TCP连接。
GET请求和POST请求的区别:1.HTTP报文层面,GET请求将信息放在URL中,POST请求将请求信息放在报文体中。2.在数据库层面,GET符合幂等性(对数据库一次操作和多次操作获得的结果是一致的)和安全性,POST不符合。3.GET请求可以被缓存、被存储,而POST请求不行。
Cookie和Session的区别:
1.Cookie
1.Cookie是由服务器发送给客户端的特殊信息,以文本的形式存放在客户端。
2.客户端再次请求的时候,会把Cookie回发。
3.服务器接收到后,会解析Cookie生成与客户端相对应的内容。
Cookie的设置和发送过程
1.客户端向服务器发送一个HTTP请求
2.服务器发送一个HTTP Response 和 Set-Cookie到客户端
3.客户端发送一个HTTP request 和 Cookie到服务器
4.服务器发送一个Http响应到客户端
2.Session
1.Session是服务器端的机制,在服务器上保存的信息
2.解析客户端请求并操作SessionId,按需保存状态信息
Session的实现方式
1.使用Cookie实现
在客户端发起http请求之后,服务器返回response和一个sessionId
2.使用URL回写实现
两者之间的区别:1.Cookie数据存放在客户的浏览器上,Session数据存放在服务器上。2.Session相对于Cookie更安全。3.如果考虑减轻服务器负担,应当使用Cookie。
HTTP和HTTPS的区别:
1.SSL:安全套接层,为网络通信提供安全及数据完整性的一种安全协议。是操作系统对外的API,SSL3.0之后更名TLS。采用身份验证和数据加密保证网络通信的安全和数据的完整性。
HTTPS数据传输流程
1.浏览器将支持的加密算法信息发送给服务器
2.服务器选择一套浏览器支持的加密算法,以证书的形式回发浏览器
3.浏览器验证证书合法性,并结合证书公钥加密信息发送给服务器
4.服务器使用私密解密信息,验证哈希,加密响应消息回发浏览器
5.浏览器解密响应信息,对消息进行验真,之后进行加密交互数据
两者之间的区别:1.HTTPS需要到CA申请证书,HTTP不需要。2.HTTPS密文传输,HTTP明文传输。3.连接方式不同,HTTPS默认使用443端口,HTTP使用80端口。4.HTTPS=HTTP+加密+认证+完整性保护,相对于HTTP来说安全。
HTPS
Socket
在网络中可以利用 协议+ip地址+端口号 唯一标识一个网络进程。
Socket是对TCP/IP协议的抽象,是操作系统对外开放的接口。
Socket通信流程
1.服务器
1.创建socket socket()
2.绑定socket和端口号 bind()
3.监听该端口号 listen()
4.接收来自客户端的连接请求 accept()
5.从socket中读取字符 recv()
6.关闭socket close()
2.客户端
1.创建socket socket()
2.连接指定的计算机的端口 connect()
3.向socket中写入信息 send()
4.关闭socket close()